package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsLibraryArea;
import com.jy.wms.pojo.WmsLibraryPosition;
import com.jy.wms.pojo.WmsOwner;
import feign.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsOwnerMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author liyi
   * @Date Wed Sep 06 16:26:01 CST 2017
   */
   public interface WmsOwnerMapper extends BaseDao<WmsOwner> {

   public Integer insertByOwmer(@Param("addWmsOwnerMap") Map<String, Object> addMap);

    public Integer updateByOwmer(@Param("editWmsOwnerMap") Map<String, Object> editMap);

   /**
    * 查询（根据货主名称模糊查询）
    * @param entity 实体对象
    * @return WmsOwner
    */
   public List<WmsOwner> baseSelectByMc(@Param("WmsOwner") WmsOwner entity);

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsOwner") WmsOwner entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsOwner") WmsOwner entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsOwner>
    */
    public List<WmsOwner>  baseSelectPage(@Param("WmsOwner") WmsOwner entity);

    /**
     * 根据货主Id查询货主的周转规则ids
     * @param sshzid
     * @return
     */
    public List<String> getZzgzByHzid(@Param("sshzid") String sshzid);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsOwner  baseSelectByPrimaryKey(@Param("id") String id);

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsOwner> idList);

    /**
     * 根据名称查询货主对应的仓库ID
     * @param mc 仓库名称
     * @return
     */
    public List<Integer> getAllByMc(@Param("mc") String mc);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsOwner") WmsOwner entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsOwner") WmsOwner entity);

    /**
     * 获取货主的订单类型所有选中的ids
     * @param map 包含sshzid zdsh 是否自动审核
     * @return User
     */
    public List<String> getOrderTypeIds(@Param("map") Map<String,Object> map);

    /**
     * 查询货主名称在数据库中的数量
     * @param map 包含 mc 货主名称  ckid 仓库ID
     * @return
     */
    public Integer getCountByMc(@Param("map") Map<String,Object> map);

    /**
     * 根据货主ID查询货主拥有的暂存库位 和 集货库位的名称
     * @param id
     * @return
     */
    public Map<String,Object> getAllKw(@Param("id") String id);

    /**
     * 根据 货主ID sshzid 及库位名称 mc 库位类型lx 查询库位
     * @param map
     * @return id 库位ID
     */
    public String getKwByMc(@Param("map") Map<String,Object> map);

    /**
     * 查询库区集合已绑定货主的库区id集合
     * @param map
     * @return
     */
    public List<WmsLibraryArea>  getKQ(@Param("map") Map<String,Object> map);

    /**
     * 查询库区集合已绑定货主的库区id集合和未绑定货主的库区的ids集合
      * @param map
     * @return
     */
    public List<WmsLibraryArea> getKQ1(@Param("map") Map<String,Object> map);

    /**
     * 查询拥有以及空闲库位
     * @param libraryPosition
     * @return
     */
    public List<WmsLibraryPosition> selectPostionBySshzidOrFree(@Param("WmsLibraryPosition") WmsLibraryPosition libraryPosition);


    /**
     * 查询库位集合用库区id(已绑定货主的库位集合)
     * @param map
     * @return
     */
   public List<WmsLibraryPosition> getKW(@Param("map") Map<String,Object> map);

    /**
     * 分页查询全部库位集合
     * @param map
     * @return
     */
   public List<WmsLibraryPosition> getKW1(@Param("map") Map<String,Object> map);

    /**
     * 不加分页的查询 库位集合(包含绑定货主和未绑定货主的该库区下)
     * @param map
     * @return
     */
    public List<WmsLibraryPosition> getPositionList(@Param("map") Map<String,Object> map);

    /**
     * 分页统计全部库位集合
     * @param map
     * @return
     */
   public Integer getCount(@Param("map") Map<String,Object> map);

    /**
     * 统计这个库区下货主下的库位数
     * @param map
     * @return
     */
    public Integer getHkws(@Param("map") Map<String,Object> map);

    /**
     * 统计这个仓库库区下的库位数
     * @param map
     * @return
     */
    public Integer getCkws(@Param("map") Map<String,Object> map);
    /**
     * 修改货主的 暂存库位 和集货库位
     * @param map
     * @return
     */
    public Integer baseUpdateByKw(@Param("map") Map<String,Object> map);

    /**
     *  清空货主拥有的库位
     * @param hzid
     */
    public Integer cleanLibrarypositionByHzid(@Param("hzid") String hzid);

    /**
     * 用库区id 查库位 更改货主id
     * @param map
     * @return
     */
    public Integer baseUpdateALLSshuid(@Param("map") Map<String,Object> map);

    /**
     *用库位id 查库位 更改货主id
     * @param map
     * @return
     */
    public Integer baseUpdateKw(@Param("map") Map<String,Object> map);
}
